//////////////////////////////////////////////////////////////////////////
//
// GAM203
// Shader wrapper class
// Shader.h
// 
// Scott Taylor
// Qantm College
//
//////////////////////////////////////////////////////////////////////////

#ifndef SHADER_H
#define SHADER_H

struct IDirect3DDevice9;
struct ID3DXEffect;

class Shader
{
public:
	static const int NAME_LEN = 256;

	Shader(const char* a_pName);
	~Shader();

	bool Load(IDirect3DDevice9* a_pDevice, const char* a_pEffectFilename);

	const char* GetName() const { return m_name; }
	ID3DXEffect* GetEffect() const { return m_pEffect; }

private:
	char m_name[NAME_LEN];  // Unique identifier for shader

	ID3DXEffect* m_pEffect;
};

#endif  //SHADER_H

